/* Copyright (c) 2025 Beijing Semidrive Technology Corporation
 * SPDX-License-Identifier: Apache-2.0
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/** *****************************************************************************************************
 *  \file     Firewall_Cfg.h                                                                            *
 * \brief    This file contains configuration header for Firewall MCAL driver                           *
 *                                                                                                      *
 * <table>                                                                                              *
 * <tr><th>Date                 <th>Version                                                             *
 * <tr><td>2025-03-25 19:03:22      <td>1.0.0 R                                                         *
 * </table>                                                                                             *
 *******************************************************************************************************/
#ifndef FIREWALL_CFG_H
#define FIREWALL_CFG_H

#ifdef __cplusplus
extern "C" {
#endif

#include "Firewall.h"

/********************************************************************************************************
 *                                 Global Macro definition                                              *
 *******************************************************************************************************/
/** \brief  Generate Autosar Specific Version Information. */
#define FIREWALL_AR_RELEASE_MAJOR_VERSION                                    (4U)
#define FIREWALL_AR_RELEASE_MINOR_VERSION                                    (3U)
#define FIREWALL_AR_RELEASE_REVISION_VERSION                                 (1U)

/** \brief  Generate Vendor Specific Version Information. */
#define FIREWALL_SW_MAJOR_VERSION                                            (3U)
#define FIREWALL_SW_MINOR_VERSION                                            (1U)
#define FIREWALL_SW_PATCH_VERSION                                            (0U)

/** \brief Enable/Disable the SE HSM. */
#define FIREWALL_SE_HSM_EN STD_OFF

/** \brief Enable/Disable the firewall interrupt.
 * Traceability: SWSR_FIREWALL_017
 */
#define FIREWALL_INTERRUPT_EN STD_ON

/** \brief Enable/Disable the response error to bus when occur illegal access.
 * Traceability: SWSR_FIREWALL_029
 */
#define FIREWALL_RESPONSE_ERROR_EN STD_OFF

/** \brief Enable/Disable the system detect the error from firewall driver. */
#define FIREWALL_DEV_ERROR_DETECT STD_ON

/** \brief Enable/Disable the safety system detect the error from firewall driver. */
#define FIREWALL_SAFETY_ENABLE STD_ON

/**
 * \name Firewall permission value.
 *
 * Traceability: SWSR_FIREWALL_019
 */

/********************************************************************************************************
 *                                  Global Variable Declarations                                        *
 *******************************************************************************************************/
/** \brief The pointer to the firewall interrupt callback function.
 * Traceability: SWSR_FIREWALL_017
 */
extern void (*Firewall_ErrorNotification)(void);

/** \brief The configuration of the firewall module.
 * Traceability: SWSR_FIREWALL_020
 */
extern Firewall_ControllerType Firewall_Ctrl;
extern const Firewall_ConfigType Firewall_Cfg;

#ifdef __cplusplus
}
#endif

#endif /* FIREWALL_CFG_H */
/* End of file */
